// 题目要求：
// 给定一个小写字母组成的字符串，求使所有字符都相同的最小操作次数
// a -> b 的操作次数是 1, z -> a 的操作次数是 1, 以此类推

// 解题思路：
// 可以使用暴力解法，将字符串中的所有字符都变成 a, b, c, d, ...
// 每个字符 ch 改变的次数为： min(abs(ch - a), 26 - abs(ch - a));
//将所有次数累加，就是总操作次数
// 在所有总的操作次数中，找出最小的

// 解题思路 2:
// 也可以使用哈希表，统计每一个字符出现的次数
// 遍历哈希表中的 key，找出所有字符都转化为这个字符的操作次数
// 每种字符的操作次数为：min((key1 - key + 26) % 26, (key - key1 + 26) % 26) * hash[key]
// 统计总的操作次数
// 在所有总操作次数中找到最小的

import java.util.*;

public class MinTransferCount {
    public static void main1(String[] args){
        Scanner in = new Scanner(System.in);

        char[] s = in.next().toCharArray();

        int n = s.length;

        int ret = 0x3f3f3f3f;
        for(int i = 0; i < 26; i++){
            char ch = (char)(i + 'a');
            int count = 0;
            for(int j = 0; j < n; j++){
                int min = Math.min(Math.abs(ch - s[j]), 26 - Math.abs(ch - s[j]));
                count += min;
            }
            ret = Math.min(ret, count);
        }

        System.out.println(ret);
    }

    public static void main(String[] args){
        Scanner in = new Scanner(System.in);

        char[] s = in.next().toCharArray();

        int n = s.length;
        int[] hash = new int[26];

        for(int i = 0; i < n; i++){
            int index = (int)(s[i] - 'a');
            hash[index]++;
        }

        int min = Integer.MAX_VALUE;
        for(int i = 0; i < 26; i++){
            int count = 0;
            for(int j = 0; j < 26; j++){
                if(hash[j] != 0){
                    int n1 = (i - j + 26) % 26;
                    int n2 = (j - i + 26) % 26;
                    count += Math.min(n1, n2) * hash[j];
                }
            }
            min = Math.min(min, count);
        }

        System.out.println(min);
    }
}
